/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejemplojpa;

import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import modelo.dao.RolJpaController;
import modelo.dao.UsuarioJpaController;
import modelo.dao.exceptions.PreexistingEntityException;
import modelo.entidades.Rol;
import modelo.entidades.Usuario;

/**
 *
 * @author decover
 */
///cada vez que queramos usar daos debemos de insertar codig....usar admin de entidades
public class EjemploJPA {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
         EntityManagerFactory emf = Persistence.createEntityManagerFactory("ejemploJPAPU");
        RolJpaController dao;
        UsuarioJpaController daoUsuario;
        
        dao = new RolJpaController( emf);
       
        Rol nuevoRol = new Rol(5);
        nuevoRol.setRol("Auditor");
        try {
            dao.create(nuevoRol);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(EjemploJPA.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(EjemploJPA.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        List <Rol> lista = dao.findRolEntities();
        for (Rol r : lista) {
            System.out.println(r.getIdRol() + " " + r.getRol());
            for (Usuario u : r.getUsuarioList()) {
                System.out.println("\t" + u.getNombres());
            }
        }
        
        
        System.out.println("----------------------------------");
        daoUsuario = new UsuarioJpaController (emf);
        List <Usuario> listau = daoUsuario.findUsuarioEntities();
        
         for (Usuario u : listau) {
            System.out.println(u.getNombres() + " " + u.getApellidos() + " "+ u.getIdRol().getRol());
            
        }
    }

 
}
